home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Megahits 3
/
Megahits 3 (1994)(GTI - Rhein-Main-Soft)(DE)[!].iso
/
module
/
utilities
/
archives
/
midi_play120.lha
/
midiplay.doc
< prev
next >
Wrap
Text File
|
1993-10-17
|
8KB
|
259 lines
Document MidiPlay
1. INTRODUCTION
1.1. VERSION
midiplay v1.2b 17-Oct-93
1.2. DISCLAIMER
The author of this program can not be held responsible for any damage
directly or indirectly caused by the use of the program. Use it at your
own risk.
1.3. COPYRIGHT
This program is copyright 1993 Janne Syväniemi. All Rights Reserved.
The program is GIFTWARE. It is freely distributable as long as all files
are included in their original form and no extra fee is charged. Midiplay
may not be included in any commercial package without a permission of the
author. If you use midiplay, send me anything worth of it (especially I
would like to hear your own compositions in midi format).
See also `Author'
1.4. WHAT IS MIDIPLAY ?
Midiplay is a program that can play format 0 and 1 midi files (format 2 has
not been tested). It can also print their contents. Other features include:
- tempo can be changed
- midi channels can be muted or played solo
- midi events can be transposed (plus drum channel option)
- program change and pitch bender message filter
- endless loop option
- format 1 files can be played like format 0 files (= format 2)
- external or internal sync
1.5. REQUIREMENTS
Midiplay should run on any Amiga from version 1.2 and up.
Midiplay has been tested only on Amiga 500+ with 3Mb ram, but it has been
compiled with Lattice/SAS C compiler v5.04 with KS 1.3 includes, so no
>2.0 specific code has been used.
2. INSTALLATION
Copy midi.library v2.0 to your LIBS: directory and midiplay wherever you like.
Bill Barton's midi.library is Copyright (C) 1987, 1988, Pregnant Badger
Music. More info about midi.library can be found on FredFish disk 227.
3. STARTING MIDIPLAY
3.1. CLI
TYPE: midiplay [options] [filename]
Only one file is allowed. If no filename has been given, midiplay
expects input from current input stream, so redirection can be used.
Options:
-? usage message
-f prints details of the midi file: format, the number of the tracks
and the division of a quarter-note.
-x prints all meta events in the file. A meta event can express
tempo, time signature, key signature or text event (copyright
notice, sequence/track name, instrument name, lyric etc.)
-n prevents midiplay from sending events to midi port. Using this
option you can print all the events without any delay between
events.
-tXXX sets playing tempo to XXX (BPM). Tempo change messages in
the midi file are ignored.
-d prints all real midi events in the file.
-mC mutes all events on channel C.
-sC sends only events on channel C.
-rX transposes all note on/off messages by X (see also -u option).
-uX sets drum channel to X. If this option is given, no transpose
will happen on this channel.
-c program change messages are not sent.
-b pitch bender messages are not sent.
-l loop. Plays the file infinite times.
-pXXX sets program priority to XXX (default is 30)
-q plays tracks (in format 1 files) in sequence.
-g merges midi input to midi output (actually, it routes the MidiIn port
to the MidiOut port)
-e receives clock signals from an external source and synchronizes with
it. Tempo can be controlled in real time from the source. The program
waits a Start or Continue message from that source before starting.
Midiplay can be stopped by sending a Stop message.
If this option is not given, Midiplay transmits clock signals and
Start and Stop messages. Thus an external source can be synchronized
with Midiplay.
Simple options can be given together like: -dcbl. Options with
numbers must be given separate from the following options like:
-u10 -lbp35 -m1 -m2 -dm4.
3.2. WORKBENCH
DOUBLE CLICK Midi file icon (= project icon with default tool
midiplay) or SELECT midi file icon and DOUBLE CLICK midiplay icon.
Following tooltypes in a project icon are allowed:
FILEINFO=ON
prints details of the midi file: format, the number of the tracks
and the division of a quarter-note.
TEXTINFO=ON
prints all meta events in the file. A meta event can express
tempo, time signature, key signature or text event (copyright
notice, sequence/track name, instrument name, lyric etc.)
DONOTPLAY=ON
prevents midiplay from sending events to midi port. Using this
option you can print all the events without any delay between
events.
TEMPO=XXX
sets playing tempo to XXX (BPM). Tempo change messages in
the midi file are ignored.
DATAINFO=ON
prints all real midi events in the file.
MUTE=C1 or MUTE=C1|C2|C3...
mutes all events on channel C1 (and channel C2 ...).
SOLO=C
sends only events on channel C.
TRANSPOSE=X
transposes all note on/off messages by X (see also -u option).
DRUMCHANNEL=X
sets drum channel to X. If this option is given, no transpose
will happen on this channel.
NOPC=ON
program change messages are not sent.
NOPB=ON
pitch bender messages are not sent.
LOOP=ON
loop. Plays the file infinite times.
PRIORITY=XXX
sets program priority to XXX (default is 30)
SEQUENCE=ON
plays tracks (in format 1 files) in sequence.
MERGE=ON
merges midi input to midi output (actually, it routes the MidiIn port
to the MidiOut port)
EXT=ON
receives clock signals from an external source and synchronizes with
it. Tempo can be controlled in real time from the source. The program
waits a Start or Continue message from that source before starting.
Midiplay can be stopped by sending a Stop message.
If this option is not given, Midiplay transmits clock signals and
Start and Stop messages. Thus an external source can be synchronized
with Midiplay.
4. OTHER INFORMATION
-When started from Workbench, midiplay opens its own console window.
-Midiplay can be stopped using CONTROL-C.
-Midiplay opens one midi source named "midiplay". Source is connected to
MIDI library's resident node "MidiOut". If an external sync option is given,
Midiplay will open also one midi destination named "midiplayin".
5. TODO
-GUI
-midi2text and text2midi (for addition of lyrics and other text)
-singer: speech synthesizer :-)))
-midi mixing
-Amiga's internal sounds played on midi channels
-AREXX port
6. PROBLEMS AND LIMITATIONS
On smaller Amigas (500 & 600) Midiplay does not multitask very well. Files
are played in time, but sometimes tempo is quite jerky. But I am happy with
it on my A500 28Mhz and over 30 processes running. If you have something
to complain, please let me know.
There are still some problems in external sync mode. MidiIn may lose some
clock signals on smaller Amigas and the midiplayer is then out of sync. If
this happens, use slower tempo and do not print anything.
Because Midiplay uses normal console windows, printing (and thus playing)
can be stopped by pressing any key other than enter.
Command ls (and maybe some other programs too) doesn't work correctly after
Midiplay has been started first time from the CLI. I don't know why.
Limitations:
-SYSEX messages are not analysed nor printed.
7. HISTORY
v1.0: 29-Jun-93, first version, only DOS, format 0 files.
v1.1: 23-Jul-93, first public release, WB and tooltypes, format 1 files.
v1.2: 29-Aug-93, external/internal sync and midi merge added, SYSEX messages
now transmitted correctly, too slow tempo problem fixed.
v1.2b:17-Oct-93, some corrections, smaller code
8. AUTHOR
Programs, postcards, midi files, bug reports, requests, suggestions,
questions to:
Janne Syväniemi
Lintuviidankatu 15 C 10
FIN-33340 TAMPERE
FINLAND
E-mail:csjasy@vehka.cs.uta.fi or csjasy@uta.fi
Hardware: Amiga500+, SupraTurbo28, SupraDrive500XP 52Mb(+2Mb Fast Mem),
MIDI interface, ROLAND D-10.
Software: Dr T's KCS v3.57 (the best sequencer program)
9. CREDITS
Thanks to:
JBM for MIDI files and comments